//Source file: D:\\aaa\\com\\ce\\pms\\renovation\\service\\ICertificateManageService.java

package com.ce.pms.renovation.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.renovation.vo.LicenceQueryVO;
import com.ce.pms.renovation.vo.PassVO;
import com.ce.pms.renovation.vo.RenovateLicenceVO;
import com.sitechasia.webx.core.support.Page;


/**
 * 证件管理
 */
public interface ICertificateManageService extends IPmsBaseService{

   /**
    * 办理许可证
    * @param licenceVO - 许可证VO
    * @return RenovateLicenceVO
    * @roseuid 493786AA01D4
    */
   public RenovateLicenceVO transactLicence(RenovateLicenceVO licenceVO);

   /**
    * 根据装修申请ID获得许可证VO
    * @param renovateRequisitionId - 装修申请ID
    * @return RenovateLicenceVO
    * @roseuid 493799F80242
    */
   public RenovateLicenceVO getLicence(Long renovateRequisitionId);

   /**
    * 根据许可证ID获得出入证列表
    * @param licenceId - 许可证ID
    * @return List
    * @roseuid 49379C08004E
    */
   public List getPasses(Long licenceId);


   /**
    * 功能描述:许可证查询<br>
    * @param licenceQueryVO
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-29<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public Page queryLicences(LicenceQueryVO licenceQueryVO);

   /**
    * 出入证VO
    * @param passVO
    * @return PassVO
    * @roseuid 4937A92F00CB
    */
   public PassVO addPass(PassVO passVO);

   /**
    * 出入证VO
    * @param passVO
    * @return PassVO
    * @roseuid 4937AA9F0399
    */
   public PassVO editPass(PassVO passVO);

   /**
    * 删除通行证
    * @param passId - 通行证Id
    * @roseuid 4937AAC9002E
    */
   public void deletePass(Long passId);

   /**
    * 功能描述:归还出入证<br>
    * @param passMap key 出入证id,value 退证状态<br>
    * Create author:罗军林<br>
    * Create on:2008-12-29<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public void returnPass(Map<Long, String> passMap);

   /**
    * 功能描述:查询指定许可证的详细信息<br>
    * @param renovateRequisitionId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-25<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public RenovateLicenceVO getLicenceByLicenceId(Long licenceId);

	/**
	 * 功能描述:查询指定许可证的出入证列表（未收费的将不查出）<br>
	 * @param licenceId
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-12-29<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
   public List<PassVO> getChargePasses(Long licenceId);

   /**
    * 功能描述:生成出入证号<br>
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2009-1-6<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public String generatePassNumber();

   /**
    * 是否允许编辑或删除许可证
    * @param passId - 许可证Id
    * @return Boolean
    * @roseuid 493E26F4035B
    */
   public Boolean isAllowDeleteOrEditPass(Long passId);

   /**
    * 功能描述:取得出入证详细信息<br>
    * @param passVO
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-29<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public PassVO getPass(Long passId);
}
